#ifndef DOPPLERDRAWASCAN_H
#define DOPPLERDRAWASCAN_H
#include "DopplerDrawScan.h"
#include <QColor>
#include <QLineF>
#include <QVector>

#define A_SCAN_LIMIT_BUFF_SIZE   8192

class DopplerDrawAScan : public DopplerDrawScan
{
    Q_OBJECT
public:

    enum A_SCAN_TYPE
    {
        A_SCAN_H  = 0,
        A_SCAN_V
    };

    enum A_SCAN_LINE_TYPE
    {
        A_SCAN_MAIN = 0   ,
        A_SCAN_DRAW_LIMIT ,
        A_SCAN_DRAW_FILL ,
        A_SCAN_LINE_TYPE_MAX
    }  ;


    struct AscanInfo
    {
        A_SCAN_TYPE nType ;
        int nStart ;
        int nStop  ;
        AscanInfo()
        {
            nType   = A_SCAN_H  ;
            nStart  = 0         ;
            nStop   = 0         ;
        }

    };

    DopplerDrawAScan():DopplerDrawScan(){}
    virtual void Draw(QImage* pImage_);

    void SetColor(QColor* color_ , A_SCAN_LINE_TYPE eLineType_  =  A_SCAN_MAIN);
    void EndAbleLineDrawing(A_SCAN_LINE_TYPE eLineType_ , bool enalbe_ = true) ;


protected:
    QVector<QLineF> lines ;
    QColor color[A_SCAN_LINE_TYPE_MAX] ;
    bool   bDrawLimit ;
    bool   bDrawFill  ;

    int aLimitHigh[A_SCAN_LIMIT_BUFF_SIZE] ;
    int aLimitLow [A_SCAN_LIMIT_BUFF_SIZE] ;
signals:

public slots:

};

#endif // DOPPLERDRAWASCAN_H
